package com.kinghood.productcenter.service.product;

import com.kinghood.infrastructure.model.dto.IdValueDTO;
import com.kinghood.productcenter.common.model.dao.product.DownloadCenterDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kinghood.productcenter.common.model.dto.base.ListDownloadQueryDTO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 下载中心 服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-20
 */
public interface IDownloadCenterService extends IService<DownloadCenterDO> {

    /**
     * 保存文件信息
     *
     * @param module 模块
     * @param type 1导入2导出
     * @param fileName 文件名
     * @param size 大小
     * @param url 地址
     * @author zfj
     * @date 2024/1/4
     */
    Long addUploadFile(Integer module,Integer type,String fileName,String size,String url);

    /**
     * 列表
     *
     * @param param 参数
     * @author jp
     * @date 2024/01/05
     */
    Object listFile(ListDownloadQueryDTO param);

    /**
     * 删除
     *
     * @id 参数
     * @author jp
     * @date 2024/01/05
     */
    void delFile(Long id);

    /**
     * 下载文件
     *
     * @param id       身份证件
     * @param response 回答
     * @param request  要求
     * @return
     * @author jp
     * @date 2024/01/12 14:58
     */
    void downloadFile(Long id, HttpServletResponse response, HttpServletRequest request);

    /**
     * 列表模块
     *
     * @return @return {@link List }<{@link IdValueDTO }>
     * @author jp
     * @date 2024/01/12 14:58
     */
    List<IdValueDTO> listModule();

    /**
     * 上传档案
     *
     * @param file 文件
     * @return
     * @author jp
     * @date 2024/01/10 10:23
     */
    void uploadFile(MultipartFile file);

    /**
     * 增加下载次数
     *
     * @param id 身份证件
     * @return
     * @author jp
     * @date 2024/01/29 14:45
     */
    void addFrequency(Long id);
}
